enum dtype_crypt_define {
	TYPE(CRYPT_DEFINE)=0x3230
};
enum subtype_crypt_define {
	SUBTYPE(CRYPT_DEFINE,LOCAL_KEYSET)=0x1,
	SUBTYPE(CRYPT_DEFINE,PUBLIC_KEY),
	SUBTYPE(CRYPT_DEFINE,DATA_SIGN),
	SUBTYPE(CRYPT_DEFINE,KEY_BLOB),
	SUBTYPE(CRYPT_DEFINE,CONN_USER)
};

typedef struct crypt_define_local_keyset{
	BYTE node_uuid[DIGEST_SIZE];
	char * user_name;
    int  privkey_len;
    BYTE * privkey;
    int pubkey_len;
    BYTE * pubkey;    
}__attribute__((packed)) RECORD(CRYPT_DEFINE,LOCAL_KEYSET);

typedef struct crypt_define_public_key{
	BYTE node_uuid[DIGEST_SIZE];
	char * user_name;
    int pubkey_len;
    BYTE * pubkey;    
}__attribute__((packed)) RECORD(CRYPT_DEFINE,PUBLIC_KEY);

typedef struct crypt_define_data_sign{
	BYTE node_uuid[DIGEST_SIZE];
	char * user_name;
    int signdata_size;
    BYTE * signdata;    
}__attribute__((packed)) RECORD(CRYPT_DEFINE,DATA_SIGN);

typedef struct crypt_define_key_blob{
	BYTE node_uuid[DIGEST_SIZE];
	char * user_name;
    int keyblob_size;
    BYTE * keyblob;    
}__attribute__((packed)) RECORD(CRYPT_DEFINE,KEY_BLOB);

typedef struct crypt_define_conn_user{
	BYTE proc_uuid[DIGEST_SIZE];
	char * user_name;
    int isverified;
}__attribute__((packed)) RECORD(CRYPT_DEFINE,CONN_USER);
